<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Spring (Framework)</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Spring_(Framework)"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Spring_Framework rootpage-Spring_Framework skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Spring (Framework)</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><table class="float-right infobox toccolours toptextcells" style="border-spacing:5px; font-size:90%; text-align:left; width:21em;">
<tbody><tr>
<th colspan="2" class="hintergrundfarbe6" style="font-size:105%; text-align:center;">Spring
<p class="mw-empty-elt">
</p>
</th></tr>
<tr>
<td colspan="2" style="text-align:center;"><span typeof="mw:File"></span>
</td></tr>
<tr>
<th colspan="2" class="hintergrundfarbe5" style="font-size:105%; text-align:center;">Basisdaten
<p class="mw-empty-elt">
</p>
</th></tr>
<tr>
<td><b><a href="Softwareentwickler" title="Softwareentwickler">Entwickler</a></b>
</td>
<td><span class="wikidata-content"><a href="VMware" title="VMware">VMware</a><sup id="cite_ref-_5804f41af13a27ed_1-0" class="reference"><a href="#cite_note-_5804f41af13a27ed-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>, Pivotal Software, <a href="Broadcom_Inc." title="Broadcom Inc.">Avago Technologies</a></span>
</td></tr>
<tr>
<td><b>Erscheinungsjahr</b>
</td>
<td><span class="wikidata-content">16. November 2002</span>
</td></tr>
<tr>
<td><b>Aktuelle <a href="Version_(Software)" title="Version (Software)">Version</a></b>
</td>
<td><span class="wikidata-content">7.0.0<sup id="cite_ref-_ef59d58e1935a1a6_2-0" class="reference"><a href="#cite_note-_ef59d58e1935a1a6-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup></span> <br> (<span class="wikidata-content">13. November 2025</span>)
</td></tr>
<tr>
<td><b><a href="Betriebssystem" title="Betriebssystem">Betriebssystem</a></b>
</td>
<td><span class="wikidata-content"><a href="Plattformunabh%C3%A4ngigkeit" title="Plattformunabhängigkeit">Plattformunabhängig</a></span>
</td></tr>
<tr>
<td><b><a href="Programmiersprache" title="Programmiersprache">Programmiersprache</a></b>
</td>
<td><span class="wikidata-content"><a href="Java_(Programmiersprache)" title="Java (Programmiersprache)">Java</a><sup id="cite_ref-_f83cfd94ded50187_3-0" class="reference"><a href="#cite_note-_f83cfd94ded50187-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>, <a href="Kotlin_(Programmiersprache)" title="Kotlin (Programmiersprache)">Kotlin</a>, <a href="Groovy" title="Groovy">Groovy</a></span>
</td></tr>
<tr>
<td><b>Kategorie</b>
</td>
<td><a href="Framework" title="Framework">Framework</a>
</td></tr>
<tr>
<td><b>Lizenz</b>
</td>
<td><span class="wikidata-content"><a href="Apache-Lizenz_2.0" class="mw-redirect" title="Apache-Lizenz 2.0">Apache-Lizenz, Version 2.0</a></span>
</td></tr>
<tr>
<td class="hintergrundfarbe5" colspan="2" style="text-align:center;"><a rel="nofollow" class="external text" href="https://spring.io/projects/spring-framework">spring.io/projects/spring-framework</a>
</td></tr></tbody></table>
<p>Das <b>Spring Framework</b> (kurz <i>Spring</i>) ist ein <a href="Open_Source" title="Open Source">quelloffenes</a> <a href="Framework" title="Framework">Framework</a> für die <a href="Java_(Programmiersprache)" title="Java (Programmiersprache)">Java</a>-Plattform, das häufig für Web-Anwendungen verwendet wird. Ziel des Spring Frameworks ist es, die Entwicklung mit <a href="Java_(Programmiersprache)" title="Java (Programmiersprache)">Java</a>/<a href="Jakarta_EE" title="Jakarta EE">Java EE</a> zu vereinfachen und gute Programmierpraktiken zu fördern. Das Spring Framework bietet mit einem breiten Spektrum an Funktionalität eine ganzheitliche Lösung zur Entwicklung von Anwendungen und deren Geschäftslogiken. Dabei steht die Entkopplung der Applikationskomponenten im Vordergrund.
</p>
<div class="mw-heading mw-heading2"><h2 id="Eigenschaften">Eigenschaften</h2></div>
<p>Das Framework basiert auf den in Rod Johnsons Buch <i>Expert One-On-One J2EE Design and Development</i><sup id="cite_ref-J2EED&D_4-0" class="reference"><a href="#cite_note-J2EED&D-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> vorgestellten Prinzipien:
</p>
<ul><li><a href="Dependency_Injection" title="Dependency Injection">Dependency Injection</a>: Den <a href="Objekt_(Programmierung)" title="Objekt (Programmierung)">Objekten</a> werden die benötigten <a href="Ressource_(Software)" title="Ressource (Software)">Ressourcen</a> und Objekte zugewiesen. Sie müssen sie nicht selbst suchen.</li>
<li><a href="Aspektorientierte_Programmierung" title="Aspektorientierte Programmierung">Aspektorientierte Programmierung</a> (AOP): Dadurch kann der Programmierer vor allem technische Aspekte wie <a href="Transaktion_(Informatik)" title="Transaktion (Informatik)">Transaktionen</a> oder <a href="Informationssicherheit" title="Informationssicherheit">Sicherheit</a> isolieren und den eigentlichen Programmcode davon freihalten. Spring bringt dabei neben <b>Spring AOP</b> eine gute Unterstützung für <a href="AspectJ" title="AspectJ">AspectJ</a> und dessen <i>Pointcut Expression Language</i> mit.</li>
<li>Vorlagen dienen dazu, die Arbeit mit einigen <a href="Programmierschnittstelle" title="Programmierschnittstelle">Programmierschnittstellen</a> (APIs) zu vereinfachen, indem Ressourcen automatisch aufgeräumt sowie Fehlersituationen einheitlich behandelt werden.</li></ul>
<p>Dadurch wird ein <a href="Plain_Old_Java_Object" title="Plain Old Java Object">POJO</a>-basiertes Programmiermodell möglich, bei dem die POJOs zusätzlich in verschiedenen Umgebungen (auf einem Server oder in einer Client-Anwendung) lauffähig sind.
</p>
<div class="mw-heading mw-heading2"><h2 id="Erweiterungen">Erweiterungen</h2></div>
<p>Auf Basis des Spring-Frameworks existieren weitere Projekte, die innerhalb des Spring-Projektes entwickelt werden:
</p>
<dl><dt>Spring .NET</dt>
<dd>ist die Portierung des Spring-Framework auf das <a href=".Net-Framework" title=".Net-Framework">.Net-Framework</a>.</dd>
<dt>Spring Boot</dt>
<dd>für die einfache Entwicklung eigenständig lauffähiger Spring-Anwendungen per <a href="Konvention_vor_Konfiguration" title="Konvention vor Konfiguration">Konvention vor Konfiguration</a>, die ohne <a href="Extensible_Markup_Language" title="Extensible Markup Language">XML</a>-Konfiguration auskommen und alle nötigen <a href="Programmbibliothek" title="Programmbibliothek">Klassenbibliotheken</a> mitbringen.</dd>
<dt>Spring AMQP</dt>
<dd>für den Zugriff auf <a href="Advanced_Message_Queuing_Protocol" title="Advanced Message Queuing Protocol">AMQP</a>-basierte <a href="Message_Oriented_Middleware" title="Message Oriented Middleware">Message Oriented Middleware</a></dd>
<dt>Spring Batch</dt>
<dd>für die Abbildung von <a href="Stapelverarbeitung" title="Stapelverarbeitung">Batch</a>-Prozessen auf der Java-Plattform.</dd>
<dt>Spring BeanDoc</dt>
<dd>für die Erstellung von Dokumentationen zu den Spring-Frameworkkonfigurationen.</dd>
<dt>Spring Data</dt>
<dd>für den Zugriff auf verschiedene relationale und <a href="NoSQL" title="NoSQL">NoSQL</a>-Datenbanken</dd>
<dt>Spring Dynamic Modules for OSGi Service Platforms</dt>
<dd>für die Implementierung von Spring-Anwendungen auf Basis des <a href="OSGi" title="OSGi">OSGi</a>-Frameworks.</dd>
<dt>Spring Extensions (Modules)</dt>
<dd>zur Anbindung von weiteren Frameworks, die nicht im Spring-Framework selbst enthalten sind.</dd>
<dt>Spring IDE</dt>
<dd>für die Entwicklerunterstützung in der Erstellung und Wartung von Spring-Anwendungen.</dd>
<dt>Spring Integration</dt>
<dd>für die Implementierung von Integrationslogik mit einem Spring-konformen <a href="Programmierparadigma" title="Programmierparadigma">Programmierparadigma</a>.</dd>
<dt>Spring BlazeDS Integration</dt>
<dd>ist die Open-Source-Lösung zur Erstellung von Spring-unterstützten <a href="Rich_Internet_Application" title="Rich Internet Application">RIA</a>-Anwendungen mit <a href="Apache_Flex" title="Apache Flex">Adobe Flex</a>.</dd>
<dt>Spring LDAP</dt>
<dd>für den einfacheren Zugriff auf <a href="Lightweight_Directory_Access_Protocol" title="Lightweight Directory Access Protocol">LDAP</a>-Systeme.</dd>
<dt>Spring MVC</dt>
<dd>für die Erstellung von Webanwendungen.</dd>
<dt>Spring Rich Client</dt>
<dd>zur Erstellung von <a href="Fat_Client" title="Fat Client">Rich Clients</a> auf Basis des Spring-Frameworks.</dd>
<dt>Spring Roo</dt>
<dd>zur raschen Generierung von Spring-basierten Enterpriseanwendungen.</dd>
<dt>Spring Security</dt>
<dd>(ehemals Spring Acegi) zur Absicherung von Java-Anwendungen und Webseiten.</dd>
<dt>Spring Social</dt>
<dd>bietet eine Vereinfachung für den Zugriff auf verschiedene <a href="Soziales_Netzwerk_(Internet)" title="Soziales Netzwerk (Internet)">Social Networks</a>.</dd>
<dt>Spring Web Flow</dt>
<dd>für die Implementierung von Abläufen auf einer Webseite.</dd>
<dt>Spring Web Services</dt>
<dd>zur Erstellung von Contract-First <a href="Webservice" title="Webservice">Webservices</a>.</dd>
<dt>ColdSpring ColdFusion</dt>
<dd>ist die Portierung des Spring-Frameworks auf die <a href="ColdFusion" title="ColdFusion">ColdFusion</a>-Plattform.</dd>
<dt>Spring for Android</dt>
<dd>ist eine Erweiterung, die das Erstellen von nativen <a href="Android_(Betriebssystem)" title="Android (Betriebssystem)">Android</a>-Apps erleichtern soll.</dd></dl>
<p>Das mittlerweile nicht mehr fortgeführte Open-Source-Projekt Spring Modules bietet darüber hinaus eine Reihe von Tools und Erweiterungen für Spring, darunter z. B. Integration mit <a href="Apache_Ant" title="Apache Ant">Ant</a>, Flux, HiveMind, <a href="Apache_Lucene" title="Apache Lucene">Lucene</a>, Apache OJB, <a href="Apache_Tapestry" title="Apache Tapestry">Tapestry</a>, Unterstützung für Caching Services, <a href="Db4o" title="Db4o">db4o</a>, <a href="Business-Rule-Engine" title="Business-Rule-Engine">Rules Engines</a>, diversen Jakarta-Commons-Komponenten, <a href="JavaSpaces" title="JavaSpaces">JavaSpaces</a>, <a href="JBPM" title="JBPM">jBPM</a>, Erweiterungen für Spring MVC und Bean-Validierung.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Vergleich">Vergleich</h2></div>
<p>Spring konkurriert direkt mit anderen <a href="Dependency_Injection" title="Dependency Injection">Dependency-Injection</a>-Frameworks wie PicoContainer oder <a href="Google_Guice" title="Google Guice">Google Guice</a>, bietet aber aufgrund seiner Unterstützung für <a href="Aspektorientierte_Programmierung" title="Aspektorientierte Programmierung">Aspektorientierte Programmierung</a> und Vereinfachung bestehender Programmierschnittstellen mehr als diese.
</p><p>Im Vergleich zu <a href="Jakarta_Enterprise_Beans#Version_3.0" title="Jakarta Enterprise Beans">Enterprise Java Beans 3.0</a>, das auch <a href="Plain_Old_Java_Object" title="Plain Old Java Object">POJO</a>-basierend ist und Dependency Injection unterstützt, gibt es folgende Unterschiede:
</p>
<ul><li>EJB 3.0 unterstützt Dependency Injection nur für <a href="Java_Naming_and_Directory_Interface" title="Java Naming and Directory Interface">JNDI</a>-Objekte beziehungsweise komplexe Service-Objekte, Spring dagegen für alle Objekte – auch für POJOs untereinander.</li>
<li>Springs Dependency-Injection-Modell ist wesentlich flexibler. Es bietet verschiedene Möglichkeiten, um in den Dependency-Injection-Prozess einzugreifen und unterstützt eine Vielzahl an unterschiedlichen Programmier- und Konfigurationsmöglichkeiten.</li>
<li>EJB 3.0 unterstützt die Interceptoren aus der aspektorientierten Programmierung nur für Beans. Mit dem Spring-AOP-Framework ist es dagegen schon immer möglich, applikationsspezifische Interceptoren zu jedem Objekt zu integrieren.</li>
<li>Spring ermöglicht mit Spring Security Zugriffskontrolle auf Instanzebene, die Zugriffskontrolle unter EJB 3.0 ist dagegen rollenbasiert, unterschiedliche Zugriffsberechtigungen von Nutzern gleicher Rollen sind damit nicht realisierbar.</li></ul>
<p>Gleichzeitig unterstützt Spring viele der Annotationen von EJB 3.0, sodass ein ähnliches Programmiermodell möglich ist.
</p><p><span id="Spring_Boot"></span>
</p>
<div class="mw-heading mw-heading2"><h2 id="Spring_Boot">Spring Boot</h2></div>
<p>Spring Boot bietet die Möglichkeit eine Spring-Applikation nach dem <a href="Konvention_vor_Konfiguration" title="Konvention vor Konfiguration">Konvention-vor-Konfiguration</a>-Prinzip zu erstellen, die alle notwendigen Komponenten mitbringt und keinen externen Application Server benötigt.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> Mit Hilfe des sogenannten Spring Initializers können Abhängigkeiten wie z. B. Web-Frameworks, Datenbanktreiber, Messaging-Komponenten oder Software für die Unterstützung der Ausführung in Cloud-Umgebung ausgewählt werden, sodass die manuelle Konfiguration des Projektes entfällt. Insbesondere im Gegensatz zu klassischen Spring-Anwendungen, bei denen mehrere XML-Konfigurationsdateien bearbeitet werden mussten, bietet Spring Boot eine schnelle Erstellung eines neuen Projektes. Dadurch wird Spring Boot auch als Methode zur Erstellung von <a href="Microservices" title="Microservices">Microservices</a> beworben.
</p><p>Spring Boot ist keine Alternative zum Spring Framework, sondern vereinfacht hauptsächlich die Konfiguration. Durch die Einbindung sogenannter „Starter“ in <a href="Apache_Maven" title="Apache Maven">Maven</a> oder <a href="Gradle" title="Gradle">Gradle</a> wird eine Standardkonfiguration bereitgestellt, die viele Anwendungsfälle abdeckt. So konfiguriert der Starter „spring-boot-starter-web“ beispielsweise in der Standardeinstellung automatisch einen integrierten <a href="Apache_Tomcat" title="Apache Tomcat">Tomcat</a>-Webserver. Weitere Starter gibt es für das Einbinden und Konfigurieren eines <a href="Objektrelationale_Abbildung" title="Objektrelationale Abbildung">ORM</a> wie <a href="Hibernate_(Framework)" title="Hibernate (Framework)">Hibernate</a> oder des Sicherheits-Frameworks Spring Security. Durch Scannen des <a href="Klassenpfad" title="Klassenpfad">Klassenpfads</a> können weitere Konfigurationen vorgenommen werden. Wenn z. B. der JDBC-Treiber für <a href="PostgreSQL" title="PostgreSQL">PostgreSQL</a> im Klassenpfad vorhanden ist, wird automatisch eine PostgreSQL-Verbindung konfiguriert.
</p>
<div class="mw-heading mw-heading2"><h2 id="Geschichte">Geschichte</h2></div>
<p>Rod Johnson präsentierte die Ideen zu Spring erstmals in seinem Buch <i>Expert One-On-One J2EE Design and Development</i><sup id="cite_ref-J2EED&D_4-1" class="reference"><a href="#cite_note-J2EED&D-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> (2002) und stellte <a href="Quelltext" title="Quelltext">Quelltext</a> als Begleitmaterial bereit. Im Februar 2003 wurde der Quellcode erstmals auf <a href="SourceForge" title="SourceForge">SourceForge</a> als quelloffenes Projekt bereitgestellt und erhielt zu diesem Zeitpunkt den Namen Spring-Framework. Im Juni 2003 erschien die erste Freigabe in der Version 0.9 unter der <a href="Apache-Lizenz" title="Apache-Lizenz">Apache 2.0</a> Lizenz. Die offizielle 1.0-Freigabe von Spring wurde im März 2004 veröffentlicht. Seit dieser Zeit fand das Spring-Framework in wenigen Jahren weite Verbreitung und wird in einer Vielzahl von Anwendungen eingesetzt.
</p><p>Im September 2004 wurde die Version 1.1 mit Fehlerbehebungen und zahlreichen neuen Funktionen veröffentlicht. Die im Mai 2005 veröffentlichte Version 1.2 unterstützte bereits einige Java-5-Funktionalitäten bei gleichzeitiger Abwärtskompatibilität zu älteren Java-Versionen. Im Dezember 2005 wurde von den Spring-Entwicklern die Version 2.0 angekündigt, die dann eine Menge neuer Funktionen mit sich brachte und im Oktober 2006 veröffentlicht wurde.
</p><p>Bis zur Veröffentlichung der Version 2.0 war das Spring-Framework bereits eine Million Mal heruntergeladen worden und gewann im Jahr 2006 einen JAX Innovation Award und einen Jolt productivity award.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>
</p><p>Am 19. November 2007 wurde die Version 2.5 veröffentlicht. Ursprünglich war die Entwicklung als Version 2.1 vorgesehen, aber aufgrund der vielen neuen Funktionen wurde stattdessen die Version 2.5 Nachfolger für die Version 2.0.x. Spring 2.5 unterstützt vollständig die Java-6-Version sowie die Java EE in der Version 5 bei gleichzeitiger Abwärtskompatibilität zu Java 1.4 sowie Java EE 1.3. Außerdem werden in Spring 2.5 <a href="Annotation_(Java)" title="Annotation (Java)">Annotations</a> für die Konfiguration der Anwendungskomponenten unterstützt.
</p><p>Im September 2009 wurde SpringSource von <a href="VMware" title="VMware">VMware</a> übernommen.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup>
</p><p>Version 3.0 erschien am 16. Dezember 2009<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup>. Neu integriert wurden darin unter anderem eine Expression Language u. a. für die Konfiguration der Spring-Beans und eine Unterstützung für <a href="Representational_State_Transfer" title="Representational State Transfer">REST</a>. Außerdem wurde die Java-basierte Konfiguration aus dem Spring-Java-Config-Projekt in Spring 3.0 integriert. Wesentliche Neuerungen der Version 3.1 waren die portable Cache-Abstraktion und die Unterstützung von Konfigurationsprofilen, bei denen abhängig von der Umgebung unterschiedliche Spring-Beans erzeugt werden. Darüber hinaus werden Web Conversations eingeführt, mit denen Zustand verwaltet werden kann, der über mehrere Web-Seiten zur Verfügung stehen muss.
</p><p>Das Spring-Framework wird nach wie vor durch die Spring-Kernentwickler, unter anderem Jürgen Höller, Rod Johnson und Rob Harrop, weiterentwickelt. Die Firma SpringSource Division von VMware, ehemals <i>Interface21</i>, beschäftigt die meisten aktiven Entwickler des Projektes und bietet u. a. Beratung, Training und Unterstützung zu Spring. Im April 2013 wurde die inzwischen von SpringSource zu Spring umbenannte VMWare-Tochterfirma in ein neu gegründetes <a href="Joint_Venture" title="Joint Venture">Joint-Venture</a>-Unternehmen zwischen VMware, <a href="EMC_Corporation" title="EMC Corporation">EMC Corporation</a> und <a href="General_Electric" title="General Electric">General Electric</a> ausgegliedert. Dieses Unternehmen trug den Namen Pivotal Software Inc.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> Pivotal wurde 2018 an die NYSE gebracht und 2019 wurden alle Anteile von VMware zurückgekauft.<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Spring_Dynamic_Modules_for_the_OSGi_Platform_(früher_Spring-OSGi)"><span id="Spring_Dynamic_Modules_for_the_OSGi_Platform_.28fr.C3.BCher_Spring-OSGi.29"></span>Spring Dynamic Modules for the OSGi Platform (früher Spring-OSGi)</h2></div>
<p>Spring Dynamic Modules agiert als Brücke zwischen dem Spring-Framework und <a href="OSGi" title="OSGi">OSGi</a>. Anwendungen auf Basis des Spring-Frameworks können hierdurch mit OSGi implementiert werden. Grundidee ist die Bereitstellung von Spring in Form von Bundles. Dabei sollen die dynamischen Merkmale von OSGi genutzt werden.
</p><p>Jedes Bundle besitzt seinen eigenen Application-Context. Spring-Beans können als OSGi-Services angeboten, OSGi-Services als Spring-Beans konsumiert werden. Services können dynamisch installiert und deinstalliert werden.
Die derzeitige Freigabe ist Spring Dynamic Modules 1.1.2, das am 3. Oktober 2008 veröffentlicht wurde.
</p>
<div class="mw-heading mw-heading2"><h2 id="SpringSource_dm-Server">SpringSource dm-Server</h2></div>
<p>Die Nutzung von OSGi für Enterprise-Anwendungen führt zu einigen Problemen, da OSGi das Laden der Klassen anders handhabt. Das kann zu Inkompatibilitäten und auch komplexeren Problemen führen, da zum Beispiel ein <a href="Objektrelationale_Abbildung" title="Objektrelationale Abbildung">O/R-Mapper</a> wie <a href="Hibernate_(Framework)" title="Hibernate (Framework)">Hibernate</a> darauf angewiesen ist, den Code der persistenten Objekte zu modifizieren. Der SpringSource dm Server bietet Lösungen für diese Probleme an und erleichtert außerdem die Nutzung von Spring. Er basiert auf <a href="Apache_Tomcat" title="Apache Tomcat">Apache Tomcat</a> für die Unterstützung von Web-Anwendungen und <a href="Equinox_(OSGi-Framework)" title="Equinox (OSGi-Framework)">Equinox</a> als OSGi-Implementierung. Der SpringSource-dm-Server ist ein quelloffenes Projekt nach <a href="GNU_General_Public_License" title="GNU General Public License">GNU General Public License</a> (GPL). Mittlerweile sind die Quellen Basis für das Eclipse-Virgo-Projekt, das nach der <a href="Eclipse_Public_License" title="Eclipse Public License">Eclipse Public License</a> lizenziert ist.
</p>
<div class="mw-heading mw-heading2"><h2 id="Siehe_auch">Siehe auch</h2></div>
<ul><li><a href="Liste_von_Dependency_Injection_Frameworks" title="Liste von Dependency Injection Frameworks">Liste von Dependency Injection Frameworks</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Literatur">Literatur</h2></div>
<ul><li>Thomas Biskup, Sven Helmberger, Holger Spielmann, Rafael Stalitza, Sascha Steiger, Nils Wloka: <i>Spring Praxishandbuch: Integration und Testing</i>. EntwicklerPress, 2008, ISBN 978-3-939084-39-6.</li>
<li>Thomas Biskup, Rafael Stalitza, Sascha Steiger, Nils Wloka: <i>Spring Praxishandbuch: Band 2: Dynamisierung, Verteilung und Sicherheit</i>. EntwicklerPress, 2009, ISBN 978-3-86802-022-9.</li>
<li>Rod Johnson, Jürgen Höller, Alef Arendsen, Thomas Risberg, Colin Sampaleanu: <i>Professional Java Development with the Spring-Framework</i>. Wiley, 2005, ISBN 0-7645-7483-3.</li>
<li>Jan Machacek, Aleksa Vukotic, Anirvan Chakraborty: <i>Pro Spring 2.5</i>. APress, 2005, ISBN 1-59059-921-7.</li>
<li>Richard Oates, Thomas Langer, Stefan Wille, Torsten Lueckow, Gerald Bachlmayr: <i> Spring & Hibernate. Eine praxisbezogene Einführung</i>, Hanser Verlag, 2006, ISBN 978-3-446-40457-1.</li>
<li>Mark Pollack, Oliver Gierke, Thomas Risberg, Jon Brisbin, Michael Hunger: <i>Spring Data</i>, O’Reilly, 2012, ISBN 978-1-4493-2395-0.</li>
<li>Craig Walls: <i>Spring im Einsatz</i>. Carl Hanser Verlag, München 2008, ISBN 978-3-446-41240-8.</li>
<li>Craig Walls: <i>Spring in Action</i> (5th Edition). Manning-Verlag, New York 2018, ISBN 978-1-61729-494-5</li>
<li>Eberhard Wolff: <i>Spring 3 – Framework für die Java Entwicklung</i>. dpunkt, 2010 (3., erweiterte Auflage), ISBN 3-89864-572-X</li>
<li>Alfred Zeitner, Birgit Linner, Martin Maier, Thorsten Göckeler: <i>Spring 2.5: Eine pragmatische Einführung</i>. Addison-Wesley, 2008, ISBN 978-3-8273-2622-5.</li>
<li>Michael Simons: <i>Spring Boot 2 – Moderne Softwareentwicklung mit Spring 5</i>. dpunkt, 2018, ISBN 978-3-86490-525-4. <a rel="nofollow" class="external free" href="http://springbootbuch.de">http://springbootbuch.de</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://spring.io/">Webpräsenz des Projektes</a> (englisch)</li>
<li><a rel="nofollow" class="external text" href="http://www.springframework.net/">www.spring.net</a> – Portierung des Spring-Frameworks für Microsofts <a href=".Net-Framework" title=".Net-Framework">.Net-Framework</a> (englisch)</li>
<li><a rel="nofollow" class="external text" href="http://www.springframework.org/osgi">Spezifikation und Dokumentation von Spring-OSGi</a> (englisch)</li>
<li><a rel="nofollow" class="external text" href="http://www.springsource.org/dmserver">Website zum dmserver</a> (englisch)</li>
<li><a rel="nofollow" class="external text" href="http://it-republik.de/jaxenter/artikel/OSGi-mit-Spring-DM-2482.html">Artikel: OSGi mit Spring DM</a> (deutsch)</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-_5804f41af13a27ed-1"><span class="mw-cite-backlink"><a href="#cite_ref-_5804f41af13a27ed_1-0">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://spring.io/"><cite style="font-style:italic">spring.io</cite>.</a></span>
</li>
<li id="cite_note-_ef59d58e1935a1a6-2"><span class="mw-cite-backlink"><a href="#cite_ref-_ef59d58e1935a1a6_2-0">↑</a></span> <span class="reference-text">spring-projects: <a rel="nofollow" class="external text" href="https://github.com/spring-projects/spring-framework/releases/tag/v7.0.0"><cite style="font-style:italic"><span lang="en">Release v7.0.0 · spring-projects/spring-framework</span></cite>.</a> (abgerufen am 19. November 2025).</span>
</li>
<li id="cite_note-_f83cfd94ded50187-3"><span class="mw-cite-backlink"><a href="#cite_ref-_f83cfd94ded50187_3-0">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://github.com/EvanLi/Github-Ranking/blob/master/Data/github-ranking-2025-07-06.csv"><cite style="font-style:italic">github.com</cite>.</a> 6. Juli 2025.</span>
</li>
<li id="cite_note-J2EED&D-4"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-J2EED&D_4-0">a</a></sup> <sup><a href="#cite_ref-J2EED&D_4-1">b</a></sup></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://www.wiley.com/en-us/Expert+One+on+One+J2EE+Design+and+Development-p-9780764543852"><i>Expert One-on-One J2EE Design and Development | Wiley.</i></a><span class="Abrufdatum"> Abgerufen am 6. Juli 2023</span> (amerikanisches Englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3ASpring+%28Framework%29&rft.title=Expert+One-on-One+J2EE+Design+and+Development+%7C+Wiley&rft.description=Expert+One-on-One+J2EE+Design+and+Development+%7C+Wiley&rft.identifier=https%3A%2F%2Fwww.wiley.com%2Fen-us%2FExpert%2BOne%2Bon%2BOne%2BJ2EE%2BDesign%2Band%2BDevelopment-p-9780764543852&rft.language=en-us"> </span></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><a href="#cite_ref-5">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://springmodules.dev.java.net/#features">Spring Modules Features</a><span style="display:none"><a rel="nofollow" class="external text" href="http://deadurl.invalid/https://springmodules.dev.java.net/">@1</a></span><span style="display:none"><a rel="nofollow" class="external text" href="https://springmodules.dev.java.net/">@2</a></span><span style="display:none">Vorlage:Toter Link/springmodules.dev.java.net</span> <small>(Seite nicht mehr abrufbar, festgestellt im Dezember 2018. <a rel="nofollow" class="external text" href="http://timetravel.mementoweb.org/list/2010/https://springmodules.dev.java.net/">Suche in Webarchiven</a>)</small>. An seine Stelle treten verschiedene Spring Extension-Projekte.</span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><a href="#cite_ref-6">↑</a></span> <span class="reference-text"><span class="cite">Mirco Widmer: <a rel="nofollow" class="external text" href="https://nxt.engineering/blog/2bit/"><i>Unterstützung von 2BIT bei einem Spring Boot Projekt.</i></a> In: <i>nxt.</i> 16. April 2021,<span class="Abrufdatum"> abgerufen am 25. August 2022</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3ASpring+%28Framework%29&rft.title=Unterst%C3%BCtzung+von+2BIT+bei+einem+Spring+Boot+Projekt&rft.description=Unterst%C3%BCtzung+von+2BIT+bei+einem+Spring+Boot+Projekt&rft.identifier=https%3A%2F%2Fnxt.engineering%2Fblog%2F2bit%2F&rft.creator=Mirco+Widmer&rft.date=2021-04-16&rft.language=de"> </span></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><a href="#cite_ref-7">↑</a></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r261891140">
/* start https://de.wikipedia.org/ */
.mw-parser-output .webarchiv-memento a{color:inherit}
/* end https://de.wikipedia.org/ */
</style><a rel="nofollow" class="external text" href="https://web.archive.org/web/20090817202514/http://jax-award.de/jax_award06/gewinner_de.php">JAX Innovation Award Gewinner 2006</a> (<span class="webarchiv-memento"><a href="Webarchivierung#Begrifflichkeiten" title="Webarchivierung">Memento</a></span> des <style data-mw-deduplicate="TemplateStyles:r250917974">
/* start https://de.wikipedia.org/ */
.mw-parser-output .dewiki-iconexternal>a{background-position:center right!important;background-repeat:no-repeat!important}body.skin-minerva .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/OOjs_UI_icon_external-link-ltr-progressive.svg")!important;background-size:10px!important;padding-right:13px!important}body.skin-timeless .mw-parser-output .dewiki-iconexternal>a,body.skin-monobook .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/MediaWiki_external_link_icon.svg")!important;padding-right:13px!important}body.skin-vector .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/Link.ernal-small-ltr-progressive.svg")!important;background-size:0.857em!important;padding-right:1em!important}
/* end https://de.wikipedia.org/ */
</style><span class="dewiki-iconexternal"><a class="external text" href="https://redirecter.toolforge.org/?url=http%3A%2F%2Fjax-award.de%2Fjax_award06%2Fgewinner_de.php">Originals</a></span> vom 17. August 2009 im <i><a href="Internet_Archive" title="Internet Archive">Internet Archive</a></i>)</span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><a href="#cite_ref-8">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.ddj.com/architect/187900423?pgno=10">Jolt winners 2006</a></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><a href="#cite_ref-9">↑</a></span> <span class="reference-text">Alexander Benlian, Thomas Hess, Peter Buxmann: <cite style="font-style:italic">Software-as-a-Service: Anbieterstrategien, Kundenbedürfnisse und Wertschöpfungsstrukturen</cite>. Springer-Verlag, 2010, ISBN 978-3-8349-8731-0, <span style="white-space:nowrap">S.<span style="display:inline-block;width:.2em"> </span>119</span>.<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rfr_id=info:sid/de.wikipedia.org:Spring+%28Framework%29&rft.au=Alexander+Benlian%2C+Thomas+Hess%2C+Peter+Buxmann&rft.btitle=Software-as-a-Service%3A+Anbieterstrategien%2C+Kundenbed%C3%BCrfnisse+und+Wertsch%C3%B6pfungsstrukturen&rft.date=2010&rft.genre=book&rft.isbn=9783834987310&rft.pages=119&rft.pub=Springer-Verlag" style="display:none"> </span></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><a href="#cite_ref-10">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://blog.springsource.org/2009/12/16/spring-framework-3-0-goes-ga/"><i>SpringSource Blog</i>, Spring Framework 3.0 goes GA</a></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><a href="#cite_ref-11">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://www.gartner.com/newsroom/id/2448415"><i>Gartner</i>, GE Joins EMC and VMware in a Joint Venture to Challenge Software Megavendors in the Cloud</a></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><a href="#cite_ref-12">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://news.vmware.com/releases/vmware-completes-acquisition-of-pivotal"><i>VMware Completes Acquisition of Pivotal ‑ VMware News and Stories.</i></a> 30. Dezember 2019,<span class="Abrufdatum"> abgerufen am 22. Juni 2023</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3ASpring+%28Framework%29&rft.title=VMware+Completes+Acquisition+of+Pivotal+%E2%80%91+VMware+News+and+Stories&rft.description=VMware+Completes+Acquisition+of+Pivotal+%E2%80%91+VMware+News+and+Stories&rft.identifier=https%3A%2F%2Fnews.vmware.com%2Freleases%2Fvmware-completes-acquisition-of-pivotal&rft.date=2019-12-30&rft.language=en"> </span></span>
</li>
</ol>
<div class="hintergrundfarbe1 rahmenfarbe1 navigation-not-searchable normdaten-typ-s" style="border-style: solid; border-width: 1px; clear: left; margin-bottom:1em; margin-top:1em; padding: 0.25em; overflow: hidden; word-break: break-word; word-wrap: break-word;" id="normdaten">
<div style="display: table-cell; vertical-align: middle; width: 100%;">
<div>
Normdaten (Sachbegriff): <a href="Gemeinsame_Normdatei" title="Gemeinsame Normdatei">GND</a>: <span class="-print"><a rel="nofollow" class="external text" href="https://d-nb.info/gnd/7526076-1">7526076-1</a></span> </div>
</div></div></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-11-24" href="https://de.wikipedia.org/wiki/?title=Spring_(Framework)&oldid=261824110">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>